home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / tool / artemis1 / usrlib / usrlib.txt < prev   
Text File  |  1992-09-17  |  6KB  |  161 lines

  1. 私製グラフィックライブラリ RIOLIB
  2.  
  3.  
  4. ===========================================================================
  5.                                     序.
  6. ===========================================================================
  7.  
  8.   High C のグラフィックライブラリは、僕にとっては「遅い」「使いにくい」「マ
  9. ニュアルがヘボい」の3拍子そろった、たいへん困ったものでした。
  10.  たしかにこのライブラリは、グラフィックを一般的に利用するための機能は非常に
  11. 充実しています。しかし、僕が TOWNS のグラフィックを使う用途と言えば、
  12.   ・ゲームづくり(それも、アクションゲーム)
  13.   ・お絵描き(または、グラフィックツールづくり)
  14. の2つしかないのです。High C のグラフィックライブラリは、この2つの点からは、
  15. かなり使いにくくできているように思います。すくなくとも、今まで MSX2 の明解な
  16. グラフィック操作体系に慣れてきた僕にとって、このライブラリは「まわりくどい」
  17. の一言につきます。
  18.  というわけで、MSX-C のグラフィックライブラリに似せて、自分流にライブラリを
  19. 作ってみました。モットーは「身軽、気軽、手軽」。日頃「もっとラクにグラフィッ
  20. クが扱えないものか」と感じておられる方は、ぜひ一度お試しください。
  21.  
  22.  P.S. このライブラリは、グラフィック関数のほかに、キーボードやマウスの操作
  23.        関数も含みます。
  24.  
  25. ===========================================================================
  26.                                  関数一覧
  27. ===========================================================================
  28.  
  29.  
  30. ■ グラフィックライブラリ(アセンブラ版)
  31.  
  32.  アセンブリ言語で記述したグラフィックライブラリです。画面モード切り替えなど
  33. は BIOS に頼っていますが、描点・描線・矩形塗りつぶしはオールアセンブラですの
  34. で、高速です。
  35.  
  36. (定数)
  37.     #define DrawNORMAL  (int)0      // 描画モード
  38.     #define DrawXOR     (int)4
  39.  
  40. (変数)
  41.     char    _egbwork[];  // BIOS のワークエリア
  42.     int     _scrmod[2];  // 各ページの画面モード
  43.     int     _nowscrmod;  // 現在の書き込みページの画面モード
  44.     int     _wrtpage;    // 現在の書き込みページ
  45.  
  46. (関数)
  47.     void    ginit     (void);
  48.                     // 初期化
  49.     void    gscreen   (int mode);
  50.                     // 画面モードの設定
  51.     void    gwrtpage  (int page);
  52.                     // 書き込みページの設定
  53.     void    gdsploc   (int x, int y);
  54.                     // 表示位置の設定
  55.     void    gscrzoom  (int xrate, int yrate);
  56.                     // 画面拡大率の設定
  57.     void    gdsparea  (int xsize, int ysize);
  58.                     // 表示範囲の設定
  59.  
  60.     void    gpset     (int x, int y, int col, int mode);
  61.                     // 点を描く
  62.     int     gpoint    (int x,int y);
  63.                     // 画面上の色を読む
  64.     void    gline     (int x1,int y1,int x2,int y2,int col,int mode);
  65.                     // 直線を描く
  66.     void    ghline    (int x1, int x2, int y, int col, int mode);
  67.                     // 水平直線を描く
  68.     void    gvline    (int x,  int y1, int y2,int col, int mode);
  69.                     // 垂直直線を描く
  70.     void    gboxfill  (int x1,int y1,int x2,int y2,int col,int mode);
  71.                     // 矩形塗りつぶし(矩形の座標で指定)
  72.     void    grboxfill (int x1,int y1,int xlen,int ylen,int col,int mode);
  73.                     // 矩形塗りつぶし(矩形の大きさで指定)
  74.     void    gboxline  (int x1,int y1,int x2,int y2,int col,int mode);
  75.                     // 矩形(線描)    (矩形の座標で指定)
  76.     void    grboxline (int x1,int y1,int xlen,int ylen,int col,int mode);
  77.                     // 矩形(線描)    (矩形の大きさで指定)
  78.  
  79.  
  80. ■ グラフィックライブラリ(C言語版)
  81.  
  82.  これは、High C の EGB ライブラリをそのまま呼び出すだけの関数です。しかし、
  83. High C のライブラリをそのまま使うよりは簡単に呼び出せます。
  84.  
  85. (変数)
  86.     char    *EGB_work;
  87.  
  88. (関数)
  89.     void    grp_init       (void);
  90.     void    grp_mode       (int mode);
  91.     void    grp_mode2      (int mode);
  92.     void    grp_scrZoom    (int xrate, int yrate);
  93.     void    grp_cls        (void);
  94.     void    grp_dispPos    (int x, int y);
  95.     int     grp_getMode    (void);
  96.     int     grp_getWrtpage (void);
  97.     void    grp_setWrtpage (int page);
  98.  
  99.     void    grp_pset    (int x, int y, int col, int mode);
  100.     int     grp_point   (int x, int y);
  101.     void    grp_line    (int x1, int y1, int x2,   int y2,   int col, int mode);
  102.     void    grp_boxline (int x1, int y1, int xlen, int ylen, int col, int mode);
  103.     void    grp_boxfill (int x1, int y1, int xlen, int ylen, int col, int mode);
  104.  
  105.     void    grp_getblk  (int x1, int y1, int xlen, int ylen, char *buf);
  106.     void    grp_putblk  (char *data, int x1, int y1);
  107.     void    grp_copy    (int sx1, int sy1, int sxlen, int sylen, int sp,
  108.                          int dx1, int dy1, int dp, int mode );
  109.  
  110.     void    grp_setplt  (int plt, int rgb);  // bit23-16:赤 bit15-8:緑 bit7-0:青
  111.     int     grp_getplt  (int plt);           // bit23-16:赤 bit15-8:緑 bit7-0:青
  112.  
  113.     void    grp_putstr  (int x, int y, char *str, int col );
  114.  
  115.  
  116. ■ キーボード、マウス関連
  117.  
  118. (型)
  119.     typedef struct {
  120.         int    x,y;
  121.         int    dx,dy;
  122.         char   btn1,btn2;
  123.     } MSDAT;
  124.  
  125. (定数)
  126.     #define OFF      (char)0
  127.     #define ON       (char)1
  128.     #define OFFON    (char)2
  129.     #define ONOFF    (char)3
  130.  
  131. (関数)
  132.     void    key_init    (void);
  133.     char    key_get     (void);
  134.     int     key_chk     (void);
  135.     char    key_read    (void);
  136.     void    key_clrbuf  (void);
  137.  
  138.     void    minit       (void);
  139.     void    mend        (void);
  140.     void    rdmos       (MSDAT *msdat);
  141.  
  142.  
  143. ■ その他
  144.  
  145. (型)
  146.     typedef struct {
  147.         int  year,mon,day, hour,min,sec;
  148.     } TIME;
  149.  
  150. (関数)
  151.     int     extwildcard (char *wildcard, char *namebuf[], int maxnames);
  152.                         // ワイルドカードの展開
  153.     void    TIFFload    (char *fname);
  154.                         // 圧縮/非圧縮 TIFF (320*240,32K色) の読み込み
  155.     void    TIFFsave    (char *fname);
  156.                         // 圧縮 TIFF (320*240,32K色) ファイルの作成
  157.     int     getftime    (char *fname, TIME *timebuf);    // 成功すれば 0 を返す
  158.                         // ファイルの作成時刻を調べる
  159.     void    getnowtime  (TIME *timebuf);
  160.                         // 現在時刻を調べる
  161.